package cn.Tedu.api;
/*本类用于测试包装类*/
public class TestNumber {
       static Integer i0;

    public static void main(String[] args) {
        /*包装类型也是引用类型,默认值是null*/
        System.out.println(i0);//null

        //创建int类型对应的包装类型Integer的对象--方式1
        Integer i1=new Integer(5);
        Integer i11=new Integer(5);
        System.out.println(i1==i11);//false,引用类型,比较地址值

        /*Integer有一个高效的效果,如果使用valueOf()的创建方式
        * 并且数据在-128~127范围内,相同的数据只会存一次
        * 后续再存都是使用之前存过的数据*/
        //创建int类型对应的包装类Integer的对象--方式2
        Integer i2=Integer.valueOf(127);
        Integer i3=Integer.valueOf(127);
        System.out.println(i2==i3);//true

        //满足高效效果的3个条件:Integer valueOf() -128~127才能高效
        Integer i4=Integer.valueOf(300);
        Integer i5=Integer.valueOf(300);
        System.out.println(i4==i5);//false

        //创建double类型对应的包装类Double的对象--方式1
        Double d1=new Double(3.14);
        Double d2=new Double(3.14);
        System.out.println(d1==d2);//false

        //创建double类型对应的包装类Double的对象--方式2
        Double d3=Double.valueOf(3.14);
        Double d33=Double.valueOf(3.14);
        System.out.println(d1==d3);//false
        System.out.println(d3==d33);//false

        //测试常用方法
        //parseInt()将String类型的数据转成int类型
        System.out.println(Integer.parseInt("800")+8);//808
        //parseDouble()将String类型的数据转成double类型
        System.out.println(Double.parseDouble("2.2")+1.1);//3.3



    }
}
